Use PartialType from @nestjs/mapped-types to create an UpdateDto where all fields are optional but retain their original validation decorators. Combine with skipMissingProperties: true in ValidationPipe so absent fields are not validated at all. This ensures PATCH only updates provided fields while still validating the ones that are sent.
PartialType wraps every field with @IsOptional() while preserving all other decorators.
Also available from @nestjs/swagger — use that version to keep Swagger documentation accurate.
skipMissingProperties: true in ValidationPipe skips validation for fields not sent in the request.
PATCH should apply partial updates — only modify fields that are present in the request body.
PUT should replace the entire resource — all required fields must be present in the body.